package com.ak.demo.config;

import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Date;

@Slf4j
@Configuration
public class MyScheduler {

    @Bean("MySchedule")
    public Scheduler getScheduler() {
        Scheduler scheduler=null;
        try {
           scheduler= StdSchedulerFactory.getDefaultScheduler();
            //创建一个job,和Helloword 完成绑定
            JobDetail job = JobBuilder.newJob(LoginJob.class)
                    // 放入job 业务中的数据
                    // 参数一： 任务的实例（唯一），任务组的名称
                    .withIdentity("myjob1", "mygroup")
                    .build();

            //创建一个Trigger
            Trigger trigger = TriggerBuilder.newTrigger()
                    // 触发器的名称 ，参数二：触发器的 组
                    .withIdentity("trigger1", "group1")
                    // 设置
                    .withSchedule(
                            CronScheduleBuilder.cronSchedule("0 1 0 * * ?"))
                    .build();
            // 添加第一个任务
            scheduler.scheduleJob(job, trigger);


            // 第二个每65秒拜访一下连接
            JobDetail job2 = JobBuilder.newJob(VisitJob.class)
                    // 放入job 业务中的数据
                    // 参数一： 任务的实例（唯一），任务组的名称
                    .withIdentity("myjob2", "mygroup2")
                    .build();

            Trigger trigger2 = TriggerBuilder.newTrigger()
                    // 触发器的名称 ，参数二：触发器的 组
                    .withIdentity("trigger2", "group1")
                    // 设置
                    .withSchedule(
                            SimpleScheduleBuilder
                                    .simpleSchedule()
                                    // 3秒钟重复 执行一次
                                    .withIntervalInSeconds(65)
                                    // 一直重复下去
                                    .repeatForever())
                    .startNow()
                    .build();
            //
            scheduler.scheduleJob(job2, trigger2);

        } catch (SchedulerException e) {
            e.printStackTrace();
            log.info("任务启动失败");
        }
        return scheduler;
    }
}
